PX4 HITL Tutorial
硬件在环仿真HITL
硬件在环(HITL 或 HIL)是一种模拟模式,其中常规 PX4 固件在真实的飞行控制器硬件上运行。这种方法的好处是可以在真实硬件上测试大部分实际的飞行代码。
PX4 支持多旋翼飞行器的 HITL(使用 jMAVSim 或 Gazebo Classic )和 VTOL(使用 Gazebo Classic)。
HITL兼容机身
兼容的机身与模拟器的设置是:
| 机体 | SYS_AUTOSTART | 凉亭经典 | 模拟MAVSim |
|---|---|---|---|
| HIL四轴飞行器X | 1001 | 是 | 是 |
| HIL 标准 VTOL 四翼飞机 | 1002 | 是 |
HITL仿真环境
通过硬件在环 (HITL) 仿真,普通的 PX4 固件可以在真实硬件上运行。JMAVSim 或 Gazebo Classic(在开发计算机上运行)通过 USB/UART 连接到飞行控制器硬件。模拟器充当网关,在 PX4 和 QGroundControl 之间共享 MAVLink 数据。
信息
如果飞行控制器支持网络并且使用稳定、低延迟的连接(例如有线以太网连接 - WiFi 通常不够可靠),也可以通过 UDP 连接模拟器。例如,此配置已在通过以太网连接到计算机的 Raspberry Pi 上运行 PX4 进行测试(包含运行 jMAVSim 命令的启动配置可在 px4_hil.config 中找到)。
下图显示了模拟环境:
- 选择了不启动任何真实传感器的 HITL 配置(通过 QGroundControl )。
- jMAVSim 或 Gazebo Classic 通过 USB 连接到飞行控制器。
- 该模拟器通过 UDP 连接到 QGroundControl ,并将其 MAVLink 消息桥接到 PX4。
- Gazebo Classic 和 jMAVSim 还可以连接到板外 API 并将 MAVLink 消息桥接到 PX4。
- (可选)可以使用串行连接通过QGroundControl 连接操纵杆/游戏手柄硬件 。
HITL 与 SITL
SITL 在模拟环境中的开发计算机上运行,并使用专门为该环境生成的固件。除了模拟驱动程序从模拟器提供虚假的环境数据外,系统运行正常。
相比之下,HITL 在普通硬件上以“HITL 模式”运行普通的 PX4 固件。模拟数据进入系统的位置与 SITL 不同。核心模块(例如指挥官和传感器)在启动时会进入 HITL 模式,从而绕过一些常规功能。
总而言之,HITL 使用标准固件在实际硬件上运行 PX4,但 SITL 实际上执行了更多的标准系统代码。
设置 HITL
检查固件中是否有 HITL
HITL 所需的模块( pwm_out_sim )并非默认内置于所有 PX4 固件中。
要检查您的飞行控制器上是否存在该模块:
- 打开 QGroundControl
- 打开 分析工具 > Mavlink 控制台 。
- 在控制台中输入以下命令:
嘘pwm_out_sim status - 如果返回值是
nsh: pwm_out_sim: command not found,则表示您没有安装该模块。
如果 pwm_out_sim 不存在,您将需要将其添加到固件中才能使用 HITL 模拟。
将 HITL 模块添加到固件
将以下键添加到飞行控制器的配置文件中,以包含所需的模块(例如,请参阅 board/px4/fmu-v6x/default.px4board )。然后重新构建固件并将其刷入开发板。
文本CONFIG_MODULES_SIMULATION_PWM_OUT_SIM=y
您也可以使用以下命令启动 GUI 配置工具,并在以下路径以交互方式启用它们: modules > Simulation > pwm_out_sim 。例如,要更新 fmu-v6x,您可以使用: